Blaise Install Library for Delphi Blaise Install (BIL) is a library containing functions for creating windows install programs in Borland Delphi. BIL includes instructions & functions for: - Creating directories - Decompressing files - Adding Drivers/Aliases to Borland Database Engine (BDE) - Modifying INI files including ODBC.INI, ODBCINST.INI, WIN.INI - Add Program Items/Groups to the Windows Program manager Blaise Install Demo can be retrieved from Compuserve Borland Delphi Forum/Library Section (3rd Party Products). The demo version includes: - General instructions on how to use library - Limited library of install functions - Demo of install functions A more comprehensive version of Blaise Install is available which includes the above and the following: - Complete library of install functions - Source code for library - Examples of install programs created in Delphi To purchase Blaise Install send $25.00 to: Blaise Install Library P.O. Box 7701 Wilton, CT 06897-7701 NOTE: CT residents include 6% sales tax US customers add $2.00 for shipping & handling International customers add $5.00 for shipping & handling Support questions should be directed to Compuserve account 73112,2544. Delphi is a Trade Mark of Borland International Inc Visual Basic is a Trade Mark of Microsoft Corporation Visual C++ is a Trade Mark of Microsoft Corporation CompuServe is a Registered Trade Mark of CompuServe Incorporated Model: bAdd2ProgMan( DdeClientConv1: TDdeClientConv; sGroup: string; sItem: string; sFile:string ): Boolean Desc: Creates a Program Group & Item. Params: DdeClientConv1: TDdeClientConv; create by clicking on the System tab on the visual controls, then clicking on the DdeClientConv sGroup: string; The Program Group Description sItem: string; The Program Item Description sFile:string The Program executable Returns: True if added successfully Warning: This function will do nothing if one of the bInstallFile functions was cancelled by the user. ----------------------------------------------------------------------- Model: bBDEAddAlias( sItem: string; TListParams: TStringList): boolean Desc: Add a BDE Alias to IDAPI.CFG Params: sItem: string The Alias you want to add TListParams: TStringList A string list of all parameters that are needed for the Alias Returns: True if alias was added properly Example: TListParams:= TStringList.create; TListParams.Add( 'DB INFO'); TListParams.Add( 'TYPE=ODBC_XYZ' ); TListParams.Add( 'PATH=' ); TListParams.Add( 'DB OPEN' ); TListParams.Add( 'USER NAME=' ); TListParams.Add( 'ODBC DSN=MYDSN' ); TListParams.Add( 'OPEN MODE=READ/WRITE' ); TListParams.Add( 'SCHEMA CACHE SIZE=8' ); TListParams.Add( 'SQLQRYMODE=' ); TListParams.Add( 'LANGDRIVER=' ); TListParams.Add( 'SQLPASSTHRU MODE=' ); bBDEAddAlias('CTF',TListParams); TListParams.Clear; See Also: Warning: This function will do nothing if one of the bInstallFile functions was cancelled by the user. Model: bBDEAddDriver( sItem: string; TListParams: TStringList): boolean; Desc: Add a BDE Driver to IDAPI.CFG Params: sItem: string The Driver you want to add TListParams: TStringList A string list of all parameters that are needed for the driver Returns: True if Driver was added properly Example: TListParams:= TStringList.create; TListParams.Add( 'INIT' ); TListParams.Add( 'VERSION=1.0' ); TListParams.Add( 'TYPE=SERVER' ); TListParams.Add( 'DLL=IDODBC01.DLL' ); TListParams.Add( 'ODBC DRIVER=MY ODBC DRIVER' ); TListParams.Add( 'DRIVER FLAGS=' ); TListParams.Add( 'DB OPEN' ); TListParams.Add( 'USER NAME=' ); TListParams.Add( 'ODBC DSN=MYDSN' ); TListParams.Add( 'OPEN MODE=READ/WRITE' ); TListParams.Add( 'SCHEMA CACHE SIZE=8' ); TListParams.Add( 'SQLQRYMODE=' ); TListParams.Add( 'LANGDRIVER=' ); TListParams.Add( 'SQLPASSTHRU MODE=' ); bBDEAddDriver('ODBC_XYZ',TListParams); TListParams.Clear; Warning: This function will do nothing if one of the bInstallFile functions was cancelled by the user. ----------------------------------------------------------------------- Model: bCopyFile( sFromFile: string; sToFile: string ): boolean; Desc: Copy a file from sFromFile to sToFile Params: sFromFile: string The file to copy from sToFile: string The file to copy to Returns: True is file was successfully copied otherwise false Warning: This function will do nothing if one of the bInstallFile functions was cancelled by the user. Model: bCreateDirectory( sDirectory ): boolean Desc: Create a file directory Params: sDirectory The directory to create Returns: True if the directory was created successfully Example: bCreateDirectory( 'C:\MyDir' ); See Also: ----------------------------------------------------------------------- Model: bDeleteFile( sFile: string ): boolean; Desc: Delete the file sFile Params: sFile: string The file to delete Returns: True if the file was deleted Example: bDeleteFile( 'C;\Junk\Junk.TXT' ) See Also: Warning: This function will do nothing if one of the bInstallFile functions was cancelled by the user. Model: bInstallFile( sFromFile: string; sToFile: string; iCopyType: Integer; sDir: string ) :Boolean; Desc: This function decompresses sFromFile into a file sToFile. It gets sFromFile from the drive/directory specified in SetInstallFromDir(). Acceptable values for iCopyType are: fiSameDateTimeIgnore If the files are the same date/time don't decompress fiExistsIgnore If the file exists don't overwrite it fiExistsOverwrite If the file exists overwrite it The file is put into a directory based on the value put in sDir: sDir Directory ----- ---------- 'P' The program directory ( based on value supplied in SetInstallToDir() ) 'I' The IDAPI Directory 'L' The IDAPI Language Drivers Directory 'W' The Windows Directory 'S' The Windows System Directory Path String A string that represents a path to put the file into Params: sFromFile: string The compressed file name sToFile: string The decompressed file name iCopyType: Integer Integer code that tells when to copy sDir: string A string that tells you where to put the new file. Returns: True if files match when completed Note: This function decompresses files. To create a compressed file you can use compress.exe. This program can be obtained from either: Microsoft Visual Basic Microsoft Visual C++ Download from CompuServe MSSNA/3RD PTY-UNSUPPORTED Forum/Library Example: - Decompress A:\ODBC.DL_ to the windows system directory ODBC.DLL (ex: C:\WINDOWS\SYSTEM\ODBC.DLL) SetInstallFromDir( 'A:\' ); bInstallFile( 'ODBC.DL_', 'ODBC.DLL', fiSameDateTimeIgnore, 'S'); - Decompress A:\MyProg.EX_ to the program directory (C:\MyDir\MyProg.EXE) SetInstallToDir( 'C:\MyDir' ); SetInstallFromDir( 'A:\' ); bInstallFile( 'MyProg.EX_', 'MyProg.EXE', fiSameDateTimeIgnore, 'P'); See Also: SetInstallToDir SetInstallFromDir Warning: This function will do nothing if one of the bInstallFile functions was cancelled by the user. ----------------------------------------------------------------------- Model: bWriteProfile( sFile: string; sGroup: string; sItem: string; sValue: string): Boolean Desc: Put a value (sValue) into an INI file (sFile) in a group (sGroup) with an Item Key Params: sFile: string The INI file to edit sGroup: string The group to edit sItem: string The Item to edit sValue: string The value to give to the item Returns: True if added successfully, otherwise false. Example: bWriteProfile( 'c:\MyProg\MyProg.INI', 'DATABASE', 'MYDATABASE' 'C:\MyProg\MyProg.DAT'); This line puts the following into c:\MyProg\MyProg.INI [DATABASE] MYDATABASE=C:\MyProg\MyProg.DAT Warning: This function will do nothing if one of the bInstallFile functions was cancelled by the user. Model: sBackUpByNumber( cFile: String): String Desc: Backup a file. The backup files name is the same as the file that is being backed up. The extension is a sequential number. Params: cFile A file to backup Returns: The backedup file name Example: cIDAPI := sReadProfile( sGetWinDir + '\WIN.INI', 'IDAPI', 'CONFIGFILE01', ''); sBackUpByNumber( cIDAPI ); will return 'C:\WINDOWS\WIN.1' the first time it is run will return 'C:\WINDOWS\WIN.2' the second time it is run See Also: ----------------------------------------------------------------------- Model: SetInstallFromDir( sInstallFrom: String ); Desc: Sets the install from directory to sInstallFrom. This is the Drive/Directory where the install programs come from. This function sets a static variable that will be used by the bInstallFile function. This static varable will tell bInstallFile() where to get files it is copying. Params: sInstallFrom The new directory you are copying program files from. Example: - Set directory to a directory supplied in a Edit Box SetInstallFromDir( EditInstallFrom.Text ); - Set Directory to directory in a string SetInstallFromDir( 'A:\' ); See Also: bInstallFile Model: SetInstallToDir( sInstallTo: String ); Desc: Sets the install to directory to sInstallTo. This is the Drive/Directory where programs are copied to. This function sets a static variable that will be used by the bInstallFile function. This static varable will tell bInstallFile() where to put program files it is copying. Params: sInstallTo The new directory you are copying program files to. Example: - Set directory to a directory supplied in a Edit Box SetInstallToDir( EditInstallTo.Text ); - Set Directory to directory in a string SetInstallToDir( 'C:\MYDIR' ); See Also: bInstallFile ------------------------------------------------------------------------- Model: sGetPath( cFile: String): String Desc: Returns a path from a fully qualified file name Params: cFile A file name Returns: The path of the file name Example: Get directory exe is running sGetPath(Application.ExeName); See Also: ----------------------------------------------------------------------- Model: sGetProgDir Desc: Returns a string that represents the Program Drive & Directory. The Program Directory is set with the SetInstallToDir function. Params: Returns: sGetProgDir Example: See Also: SetInstallToDir Model: sGetSysDir Desc: Returns a string that represents the Windows System Drive & Directory. Params: Returns: sGetSysDir Example: See Also: ----------------------------------------------------------------------- Model: sGetWinDir Desc: Returns a string that represents the Windows Drive & Directory. Params: Returns: sGetWinDir Example: See Also: ----------------------------------------------------------------------- Model: sReadProfile( sFile: string; sGroup: string; sItem: string; sDefault: string): String Desc: Get a value string in an INI file (sFile) in a group (sGroup) with an Item Key. If no value is found return the default value. Params: sFile: string The INI file to read sGroup: string The group to read sItem: string The Item to read sDefault: string The default value to give to the item Returns: The string in the INI file Example: sReadProfile( 'c:\MyProg\MyProg.INI', 'DATABASE', 'MYDATABASE' ''); This call gets c:\MyProg\MyProg.DAT from the following example in c:\MyProg\MyProg.INI [DATABASE] MYDATABASE=C:\MyProg\MyProg.DAT Warning: This function will do nothing if one of the bInstallFile functions was cancelled by the user. Model: sTempFile: string; Desc: Create a temporary file name. This file name is located in the directory described in the TEMP enviromental variable. Params: Returns: A temporary File Name Example: See Also: Warning: This function will do nothing if one of the bInstallFile functions was cancelled by the user. LIMITED WARRANTY THIS PROGRAM, INSTRUCTION MANUAL, AND REFERENCE MATERIALS ARE SOLD "AS IS," WITHOUT WARRANTY AS TO THEIR PERFORMANCE, MERCHANTABILITY, OR FITNESS FOR ANY PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THIS PROGRAM IS ASSUMED BY Y0U. HOWEVER, TO THE ORIGINAL PURCHASER ONLY, THE PUBLISHER WARRANTS THE MAGNETIC DISKETTE ON WHICH THE PROGRAM IS RECORDED TO BE FREE FROM DEFECTS IN MATERIALS AND FAULTY WORKMANSHIP UNDER NORMAL USE FOR A PERIOD OF NINETY DAYS FROM THE DATE OF PURCHASE. IF DURING THIS NINETY-DAY PERIOD THE DISKETTE SHOULD BECOME DEFECTIVE, IT MAY BE RETURNED TO THE PUBLISHER FOR A REPLACEMENT WITHOUT CHARGE, PROVIDED YOU HAVE PREVIOUSLY SENT IN OUR LIMITED WARRANTY REGISTRATION CARD TO THE PUBLISHER OR SEND PROOF OF PURCHASE OF THE PROGRAM. YOUR SOLE AND EXCLUSIVE REMEDY IN THE EVENT OF A DEFECT IS EXPRESSLY LIMITED TO REPLACEMENT OF THE DISKETTE AS PROVIDED ABOVE. IF FAILURE OF A DISKETTE HAS RESULTED FROM ACCIDENT OR ABUSE, THE PUBLISHER SHALL HAVE NO RESPONSIBILITY TO REPLACE THE DISKETTE UNDER THE TERMS OF THIS LIMITED WARRANTY. ANY IMPLIED WARRANTIES RELATING TO THE DISKETTE, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE LIMITED TO A PERIOD OF NINETY DAYS FROM DATE OF PURCHASE. PUBLISHER SHALL NOT BE LIABLE FOR INDIRECT, SPECIAL, OR CONSEQUENTIAL DAMAGES RESULTING FROM THE USE OF THIS PRODUCT. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATIONS MIGHT NOT APPLY TO YOU. THIS WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS, AND YOU MAY ALSO HAVE OTHER RIGHTS WHICH VARY FROM STATE TO STATE. ------------------------------------------------------------------------- WARRANTY REGISTRATION CARD NAME: COMPANY: ADDRESS: CITY: STATE: ZIP CODE: TYPE OF BUSINESS: PROGRAM PURCHASE: SERIAL NUMBER: DATE PURCHASED: COMPUTER BRAND: